package com.wizz.trade.information.service;

import com.wizz.trade.information.dto.page.CompanydeptPageDto;
import com.wizz.trade.information.entity.Companydept;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wizz.trade.common.PageVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 公司部门表 服务类
 * </p>
 *
 * @author fyftless
 * @since 2023-04-02 04:26:06
 */
public interface CompanydeptService extends IService<Companydept> {

    /**
     * 查询所有公司部门
     * @param companydept
     * @return
     */
    void addCompanydept(Companydept companydept);

    /**
     * 根据id更新公司部门
     * @param companydept
     */

    void updateCompanydept(Companydept companydept);

    /**
     * 根据id删除公司部门
     * @param id
     */
    void deleteCompanydept(Integer id);

    /**
     * 分页条件查询公司部门
     * @param companydeptPageDto
     * @return
     */
    PageVo<Companydept> getPage(CompanydeptPageDto companydeptPageDto);

    /**
     * 查询所有公司部门
     * @return
     */
    List<Companydept> getAll();

    /**
     * 获取本公司部门id-name映射
     * @param companyId 公司id
     * @return
     */
    List<Map<Integer, String>> getDeptNames(Integer companyId);

    /**
     * 获取自家公司部门键值对选项
     * @param companyId 公司id
     * @return 键值对选项
     */
    List<Map<Integer, String>> getOurDeptOptions(Integer companyId);

    /**
     * 获取其他公司部门键值对
     * @param companyId 公司id
     * @return 键值对选项
     */
    List<Map<Integer, String>> getCompanyDeptOptions(Integer companyId);
}
